package com.shop.config;

import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.json.FastJsonFactory;
import com.jfinal.kit.PropKit;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;
import com.shop.CommonAttribute;

public class Config extends JFinalConfig {
    /**
     * 运行此 main 方法可以启动项目，此main方法可以放置在任意的Class类定义中，不一定要放于此
     *
     * 使用本方法启动过第一次以后，会在开发工具的 debug、run config 中自动生成
     * 一条启动配置，可对该自动生成的配置再添加额外的配置项，例如 VM argument 可配置为：
     * -XX:PermSize=64M -XX:MaxPermSize=256M
     */
    public static void main(String[] args) {
        /**
         * 特别注意：Eclipse 之下建议的启动方式
         */
       // JFinal.start("src/main/webapp", 8888, "/", 5);

        /**
         * 特别注意：IDEA 之下建议的启动方式，仅比 eclipse 之下少了最后一个参数
         */
         JFinal.start("src/main/webapp", 80, "/");
    }
    @Override
    public void configConstant(Constants me) {
        // TODO Auto-generated method stub
        PropKit.use(CommonAttribute.CONFIG_PROPERTIES);
        /** 开发者模式 */
        me.setDevMode(PropKit.getBoolean("system.devMode", false));
        /** 配置页面 */
        me.setViewType(ViewType.FREE_MARKER);
        me.setViewExtension(CommonAttribute.VIEW_EXTENSION);
        me.setError404View(CommonAttribute.FRONT_RESOURCE_NOT_FOUND_VIEW);
        me.setError500View(CommonAttribute.FRONT_ERROR_VIEW);
        /** 编码配置 */
        me.setEncoding(CommonAttribute.UTF_8);
        /** 上传文件目录 */
        me.setBaseUploadPath(CommonAttribute.BASE_UPLOAD_PATH);
        /** 设置参数分隔符 */
        me.setUrlParaSeparator(CommonAttribute.URL_PARA_SEPARATOR);
        /** 设置JSON */
        me.setJsonFactory(new FastJsonFactory());
        me.setJsonDatePattern(CommonAttribute.JSON_DATE_PATTERN);
    }

    @Override
    public void configRoute(Routes routes) {

    }

    @Override
    public void configEngine(Engine engine) {

    }

    @Override
    public void configPlugin(Plugins plugins) {

    }

    @Override
    public void configInterceptor(Interceptors interceptors) {

    }

    @Override
    public void configHandler(Handlers handlers) {

    }
}
